
public class selectSort{

	/**
	 * 分类： 内部比较排序
	 * 数据结构：数组
	 * 最差时间复杂度： O(n^2)
	 * 最优时间复杂度： O(n^2)
	 * 平均时间复杂度： O(n^2)
	 * 所需辅助空间： O(1)
	 * 稳定性： 不稳定
	 * [sort description]: 选择排序，每次在未排序的序列中选择最小的元素，放在已排序序列中最后的位置。
	 * @param array [description]
	 */
	public void sort(int [] array){
		int len = array.length;
		for(int i=0;i<len;i++){
			int min = i;
			for(int j=i;j<len;j++){
				if(array[j] < array[i]){
					min = j;
				}
			}
			if(min != i){
				exchange(array,i,min);
			}
		}
	}

	/**
	 * [exchange description]: 交换数组中第i个和第j个元素的值
	 * @param array [description]
	 * @param i     [description]
	 * @param j     [description]
	 */
	void exchange(int [] array, int i,int j){
		array[i] = array[i] ^ array[j];
		array[j] = array[i] ^ array[j];
		array[i] = array[i] ^ array[j];
	}
}